Skip to content

ROB-74: add durable job evaluation lifecycle - #101

Closed
robertn702 wants to merge 1 commit into
Gsync:devfrom
robertn702:feat/rob-74-job-evaluations
Closed

ROB-74: add durable job evaluation lifecycle#101
robertn702 wants to merge 1 commit into
Gsync:devfrom
robertn702:feat/rob-74-job-evaluations

Conversation

@robertn702

Copy link
Copy Markdown

Summary

Adds a durable, source-independent lifecycle for asynchronous job evaluations without blocking job ingestion or overloading the existing resume-match fields.

Changes

  • add versioned JobEvaluation persistence and migration
  • canonicalize current persisted job and default-resume inputs server-side
  • add leased claim, fenced complete/fail, retry, and current/history access APIs
  • add a least-privilege evaluations:worker token preset
  • preserve existing Job.matchScore and Job.matchData behavior

Related Issues

Closes ROB-74
Closes #100

Testing

  • npx prisma generate
  • DATABASE_URL="file:/tmp/jobsync-rob74-verify.db" npx prisma migrate deploy
  • npx tsc --noEmit
  • npm run lint
  • npm test -- --run src/lib/jobEvaluations/service.test.ts

This PR remains draft while the real-SQLite concurrency/auth/source integration matrix and final high-risk review are completed.

@Gsync

Gsync commented Aug 23, 2026

Copy link
Copy Markdown
Owner

I'm going to pass on this approach: JobSync is single-owner self-hosted, so a leased multi-worker queue API is more concurrency machinery than the app needs, and it adds a second evaluation store alongside Job.matchScore/matchData. When I build this it'll run inside the existing scheduler that already drives the Greenhouse/Lever automations. Closing the PR.

@Gsync Gsync closed this Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants